const examApi = require('../../utils/examApi.js');

Page({
  data: {
    currentTab: 'knowledge', // 默认选中数量关系标签
    tabItems: [
      { id: 'knowledge', name: '常识判断' },
      { id: 'language', name: '言语理解和表达' },
      { id: 'quantity', name: '数量关系' },
      { id: 'logic', name: '判断推理' }
    ],
    examList: [],
    loading: false
  },

  onLoad() {
    // 页面加载时初始化
    this.loadExamList(this.data.currentTab);
  },
  
  onShow() {
    // 页面显示时重新加载数据
    this.loadExamList(this.data.currentTab);
  },
  
  // 切换标签
  onTabChange(event) {
    const tab = event.detail.name;
    this.setData({ currentTab: tab });
    
    // 根据不同的标签加载不同的考试数据
    this.loadExamList(tab);
  },
  
  // 根据标签加载考试列表
  async loadExamList(tab) {
    try {
      this.setData({ loading: true });
      
      // 从API获取考试列表
      const response = await examApi.getSpecialExamList(tab);
      console.log('API返回的原始数据:', response);
      
      // 格式化数据
      const examList = response.records.map(exam => {
        console.log('处理试卷数据:', exam);
        console.log('完整的试卷数据:', JSON.stringify(exam, null, 2));
        
        // 尝试不同的字段名
        const startTimeValue = exam.start_time || exam.startTime || exam['start_time'];
        const endTimeValue = exam.end_time || exam.endTime || exam['end_time'];
        
        console.log('解析到的时间值:', {
          startTimeValue,
          endTimeValue
        });
        
        return {
          id: exam.id,
          title: exam.title || '未命名试卷',
          tag: exam.type || '练习',
          startTime: this.formatDate(startTimeValue),
          endTime: this.formatDate(endTimeValue),
          status: exam.status || '免费',
          isCompleted: exam.isCompleted || false
        };
      });
      
      console.log('格式化后的考试列表:', examList);
      
      this.setData({ 
        examList,
        loading: false
      });
    } catch (error) {
      console.error('加载考试列表失败:', error);
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      });
      this.setData({ 
        examList: [],
        loading: false 
      });
    }
  },

  // 格式化日期
  formatDate(timestamp) {
    if (!timestamp) return '待定';
    
    try {
      // 如果是字符串格式的时间戳，直接使用
      const date = new Date(timestamp);
      
      // 检查是否是有效的日期
      if (isNaN(date.getTime())) {
        console.error('无效的时间戳:', timestamp);
        return '待定';
      }
      
      return `${date.getFullYear()}.${String(date.getMonth() + 1).padStart(2, '0')}.${String(date.getDate()).padStart(2, '0')}`;
    } catch (error) {
      console.error('时间格式化错误:', error);
      return '待定';
    }
  },
  
  // 开始答题
  startExam(e) {
    const examId = e.currentTarget.dataset.examid;
    console.log('开始答题，试卷ID:', examId);
    
    if (!examId) {
      wx.showToast({
        title: '试卷ID不能为空',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载提示
    wx.showLoading({
      title: '加载中...',
      mask: true
    });
    
    wx.navigateTo({
      url: `/pages/exam/index?examId=${examId}&mode=special`,
      success: () => {
        console.log('成功跳转到答题页面');
        wx.hideLoading();
      },
      fail: (error) => {
        console.error('跳转失败:', error);
        wx.hideLoading();
        wx.showToast({
          title: '跳转失败，请重试',
          icon: 'none'
        });
      }
    });
  },
  
  // 查看成绩
  viewResult(e) {
    const id = e.currentTarget.dataset.id;
    console.log('点击查看成绩，ID:', id);
    
    // 显示加载提示
    wx.showLoading({
      title: '加载中...',
      mask: true
    });
    
    // 使用navigateTo而不是redirectTo
    wx.navigateTo({
      url: `/pages/submit/index?examId=${id}&mode=special`,
      success: () => {
        console.log('成功跳转到成绩页面');
        wx.hideLoading();
      },
      fail: (error) => {
        console.error('跳转失败:', error);
        wx.hideLoading();
        
        // 尝试使用redirectTo作为备选
        wx.redirectTo({
          url: `/pages/submit/index?examId=${id}&mode=special`
        });
      }
    });
  }
}); 